#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QDockWidget* dockWidget = new QDockWidget("这是浮动窗口",this);
    addDockWidget(Qt::RightDockWidgetArea,dockWidget);
    //设置只允许左、下浮动
    dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::DockWidgetArea::BottomDockWidgetArea);

}

//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    QStatusBar* statusBar = new QStatusBar(this);
//    this->setStatusBar(statusBar);

//    QLabel* label = new QLabel(this);
//    label->setText("小心谨慎，莫出bug");
//    label->setMargin(20);
//    QLabel* label2 = new QLabel(this);
//    label2->setText("加油");

//    //从左向右添加
//    statusBar->addWidget(label);
//    //从右向左添加
//    statusBar->addPermanentWidget(label2);

////    //临时消息，显示3000ms
////    statusBar->showMessage("正在执行",3000);

//}

//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    QToolBar* tool1 = new QToolBar(this);
//    QToolBar* tool2 = new QToolBar(this);
//    this->addToolBar(tool1);
//    this->addToolBar(tool2);

//    QAction* action1 = new QAction("1文本1");
//    QAction* action2 = new QAction("2文本2");

//    tool1->addAction(action1);
//    //只允许在右侧停靠
//    tool1->setAllowedAreas(Qt::ToolBarArea::RightToolBarArea);

//    tool2->addAction(action2);
//    //只允许在左右两侧停靠
//    tool2->setAllowedAreas(Qt::ToolBarArea::RightToolBarArea | Qt::ToolBarArea::LeftToolBarArea);

//    //设置是否可以拖动
//    tool1->setMovable(true);
//    tool2->setMovable(true);

//    //设置是否可以浮动
//    tool1->setFloatable(false);
//    tool2->setFloatable(true);
//}

//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    QMenuBar* menuBar = this->menuBar();
//    this->setMenuBar(menuBar);

//    QMenu* menu1 = new QMenu("文件");
//    menuBar->addMenu(menu1);

//    //创建一个工具栏
//    QToolBar* toolBar1 = new QToolBar();
//    //工具栏可以有多个，所以是addToolBar，注意与菜单栏setMenuBar区分
//    this->addToolBar(toolBar1);

//    QAction* action1 = new QAction("保存");
//    QAction* action2 = new QAction("打开");
//    action1->setIcon(QIcon(":/open.png"));
//    action2->setIcon(QIcon(":/save.png"));

//    //将菜单项放到菜单栏中
//    menu1->addAction(action1);
//    menu1->addAction(action2);

//    //菜单项放到工具栏中
//    toolBar1->addAction(action1);
//    toolBar1->addAction(action2);
//}

//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    this->setWindowTitle("记事本");
//    //1.创建菜单栏
//    QMenuBar* menuBar = new QMenuBar(this);
//    //所以更推荐这样写
//    //已经存在，获取并返回；不存在，创建并返回
//    QMenuBar* menuBar2 = this->menuBar();
//    //2.将菜单栏添加进窗口中
//    this->setMenuBar(menuBar);  //若是已经存在的，则是自己替换自己，无影响

//    QIcon icon1 = QIcon(":/open.png");
//    QIcon icon2 = QIcon(":/save.png");

//    //3.向菜单栏中添加菜单，并设置快捷键
//    QMenu* menu1 = new QMenu("文件(&F)");
//    menu1->setIcon(icon1);
//    menuBar->addMenu(menu1);
//    //添加菜单项
//    QAction* action1 = new QAction("打开");
//    QAction* action2 = new QAction("保存");
//    menu1->addAction(action1);
//    menu1->addAction(action2);

//   //设置图标
//    action1->setIcon(icon1);
//    action2->setIcon(icon2);
//}

//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    this->setWindowTitle("记事本");

//    //1.创建菜单栏
//    QMenuBar* menuBar = new QMenuBar(this);
//    //2.将菜单栏添加进窗口中
//    this->setMenuBar(menuBar);

//    //3.向菜单栏中添加菜单，并设置快捷键
//    QMenu* menu1 = new QMenu("文件(&F)");
//    //添加菜单项
//    QAction* action1 = new QAction("打开");
//    QAction* action2 = new QAction("保存");
//    menu1->addAction(action1);
//    menu1->addAction(action2);
//    QMenu* menu2 = new QMenu("编辑(&E)");
//    QMenu* menu3 = new QMenu("工具(&T)");
//    menuBar->addMenu(menu1);
//    menuBar->addMenu(menu2);
//    menuBar->addMenu(menu3);
//    //4.嵌套菜单  工具->选项
//    QMenu* menu4 = new QMenu("选项(&C)");
//    menu3->addMenu(menu4);
//    QAction* action3 = new QAction("配置");
//    QAction* action4 = new QAction("帮助");
//    menu4->addAction(action3);
//    menu4->addAction(action4);

//    //创建一个中央控件，充当编辑区
//    edit = new QTextEdit();
//    edit->setPlaceholderText("请编写文本内容");
//    this->setCentralWidget(edit);

//    //给action设置槽函数
//    connect(action1,&QAction::triggered,this,&MainWindow::load);
//    connect(action2,&QAction::triggered,this,&MainWindow::save);
//}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::save()
{
   qDebug() << "文件已保存";
}

void MainWindow::load()
{
   qDebug() << "文件已打开";
}


//MainWindow::MainWindow(QWidget *parent)
//    : QMainWindow(parent)
//    , ui(new Ui::MainWindow)
//{
//    ui->setupUi(this);
//    //1.创建菜单栏
//    QMenuBar* menuBar = new QMenuBar(this);
//    //2.将菜单栏添加进窗口中
//    this->setMenuBar(menuBar);

//    //3.向菜单栏中添加菜单
//    QMenu* menu1 = new QMenu("文件");
//    QMenu* menu2 = new QMenu("编辑");
//    QMenu* menu3 = new QMenu("调试");
//    QMenu* menu4 = new QMenu("工具");

//    menuBar->addMenu(menu1);
//    menuBar->addMenu(menu2);
//    menuBar->addMenu(menu3);
//    menuBar->addMenu(menu4);

//    //4.创建菜单项
//    QAction *action1 = new QAction("打开");
//    QAction *action2 = new QAction("保存");
//    QAction *action3 = new QAction("新建");
//    //5.将菜单项添加至菜单中
//    menu1->addAction(action1);
//    menu1->addSeparator();	//在打开与保存之间添加分割线
//    menu1->addAction(action2);
//    menu1->addAction(action3);
//}



